2021年12月14日 京都大学スーパーコンピューター ファイル消失事件
2021年12月14日17時32分 から 2021年12月16日12時43分にかけて,スーパーコンピュータシステムのストレージをバックアップするプログラム(日本ヒューレット・パッカード合同会社製)の不具合により、スーパーコンピュータシステムの大容量ストレージ(/LARGE0) の一部データを意図せず削除する事故が発生しました。 原因の検証記事など
やってはダメなのは感覚としてわかるけど、原理がわからない
code:ls --help | grep inode
-i, --inode print the index number of each file
code:ls -li
total 56245
19421773393581898 -rwxr-xr-x 1 yataka 1049089 57591205 1月 4 16:58 compress.exe*
162129586585527621 -rw-r--r-- 1 yataka 1049089 579 1月 4 17:33 compress.ts
code:eval --help
Execute arguments as a shell command.
Combine ARGs into a single string, use the result as input to the shell,
and execute the resulting commands.
Exit Status:
Returns exit status of command or success if command is null.
スクリプトが終了する前に、スクリプトに別の処理が追加されたらどうなるか
code:test.bash
p='echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5'
eval $p
code:while :; do cat -n test.bash; sleep 5; done
1 p='echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5'
2
3 eval $p
...
code:while :; do ls -li test.bash; sleep 5; done
29273397578863487 -rw-r--r-- 1 yataka 1049089 80 1月 28 11:18 test.bash
...
code:bash test.bash
今実行している行: 3
今実行している行: 4
今実行している行: 5
今実行している行: 6
今実行している行: 7
今実行している行: 8
今実行している行: 9
今実行している行: 10
...
code:ㅤ
1 p='echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5'
2
3 eval $p
4 echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5
5 echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5
6 echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5
7 echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5
8 echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5
9 echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5
10 echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5
11 echo 今実行している行: $LINENO; echo "$p" >> $0 ; sleep 5
...